package com.kapcb.secure.configuration;

/**
 * <a>Title: EncryptPropertyResolver </a>
 * <a>Author: kapcb <a>
 * <a>Description: An interface to resolve property values that may be encrypted. <a>
 *
 * @author Kpacb
 * @version 1.0
 * @date 2024/5/17 22:43
 * @since 1.0
 */
public interface EncryptPropertyResolver {

    /**
     * Returns the unencrypted version of the value provided free on any prefixes/suffixes or any other metadata
     * surrounding the encrypted value. Or the actual same String if no encryption was detected.
     *
     * @param value the property value
     * @return either the same value if the value is not encrypted, or the decrypted version.
     */
    String resolvePropertyValue(String value);

}